// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.

package org.jetbrains.kotlin.j2k.k2;

import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.idea.base.plugin.KotlinPluginMode;
import org.jetbrains.kotlin.idea.base.test.TestRoot;
import org.jetbrains.kotlin.idea.test.JUnit3RunnerWithInners;
import org.jetbrains.kotlin.idea.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.runner.RunWith;

/**
 * This class is generated by {@link org.jetbrains.kotlin.testGenerator.generator.TestGenerator}.
 * DO NOT MODIFY MANUALLY.
 */
@SuppressWarnings("all")
@TestRoot("j2k/k2/tests")
@TestDataPath("$CONTENT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("../../shared/tests/testData/multiFile")
public class K2JavaToKotlinConverterMultiFileTestGenerated extends AbstractK2JavaToKotlinConverterMultiFileTest {
    @java.lang.Override
    @org.jetbrains.annotations.NotNull
    public final KotlinPluginMode getPluginMode() {
        return KotlinPluginMode.K2;
    }

    private void runTest(String testDataFilePath) throws Exception {
        KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
    }

    @TestMetadata("AnnotationDoesNotLoseImport")
    public void testAnnotationDoesNotLoseImport() throws Exception {
        runTest("../../shared/tests/testData/multiFile/AnnotationDoesNotLoseImport/");
    }

    @TestMetadata("DetectPropertiesMultipleFiles")
    public void testDetectPropertiesMultipleFiles() throws Exception {
        runTest("../../shared/tests/testData/multiFile/DetectPropertiesMultipleFiles/");
    }

    @TestMetadata("FieldToPrimaryConstructorProperty")
    public void testFieldToPrimaryConstructorProperty() throws Exception {
        runTest("../../shared/tests/testData/multiFile/FieldToPrimaryConstructorProperty/");
    }

    @TestMetadata("FieldToProperty")
    public void testFieldToProperty() throws Exception {
        runTest("../../shared/tests/testData/multiFile/FieldToProperty/");
    }

    @TestMetadata("GetterAndSetterUsages")
    public void testGetterAndSetterUsages() throws Exception {
        runTest("../../shared/tests/testData/multiFile/GetterAndSetterUsages/");
    }

    @TestMetadata("InterfaceWithGetterInOtherFile")
    public void testInterfaceWithGetterInOtherFile() throws Exception {
        runTest("../../shared/tests/testData/multiFile/InterfaceWithGetterInOtherFile/");
    }

    @TestMetadata("Java17_RecordClass")
    public void testJava17_RecordClass() throws Exception {
        runTest("../../shared/tests/testData/multiFile/Java17_RecordClass/");
    }

    @TestMetadata("Java17_RecordClassExplicitAccessor")
    public void testJava17_RecordClassExplicitAccessor() throws Exception {
        runTest("../../shared/tests/testData/multiFile/Java17_RecordClassExplicitAccessor/");
    }

    @TestMetadata("JavaUsageOfBothFieldAndAccessor")
    public void testJavaUsageOfBothFieldAndAccessor() throws Exception {
        runTest("../../shared/tests/testData/multiFile/JavaUsageOfBothFieldAndAccessor/");
    }

    @TestMetadata("KT11952")
    public void testKT11952() throws Exception {
        runTest("../../shared/tests/testData/multiFile/KT11952/");
    }

    @TestMetadata("OverrideFieldToPrimaryConstructorProperty")
    public void testOverrideFieldToPrimaryConstructorProperty() throws Exception {
        runTest("../../shared/tests/testData/multiFile/OverrideFieldToPrimaryConstructorProperty/");
    }

    @TestMetadata("OverridePropertyAndUseAnotherPropertyOfSupertypeCompanion")
    public void testOverridePropertyAndUseAnotherPropertyOfSupertypeCompanion() throws Exception {
        runTest("../../shared/tests/testData/multiFile/OverridePropertyAndUseAnotherPropertyOfSupertypeCompanion/");
    }

    @TestMetadata("ProtectedVisibility")
    public void testProtectedVisibility() throws Exception {
        runTest("../../shared/tests/testData/multiFile/ProtectedVisibility/");
    }

    @TestMetadata("StaticAnnotation")
    public void testStaticAnnotation() throws Exception {
        runTest("../../shared/tests/testData/multiFile/StaticAnnotation/");
    }

    @TestMetadata("ToCompanionObject")
    public void testToCompanionObject() throws Exception {
        runTest("../../shared/tests/testData/multiFile/ToCompanionObject/");
    }

    @TestMetadata("ToObject")
    public void testToObject() throws Exception {
        runTest("../../shared/tests/testData/multiFile/ToObject/");
    }
}
